A self-timing path (or circuit) helps provide reliable, high-speed read or write operations on a memory, such as an SRAM (Static Random Access Memory). A self-timing path is used to control the pulse width of an internal clock signal within the memory, which in turn controls sense amplifiers and latches for reading from or writing to a bitcell array within the memory. By tracking column and row performance of the bitcell array, the appropriate latches and sense amplifiers can be enabled at the correct time to facilitate a reliable read or write operation. Improvement in column and row tracking can improve memory performance.